本校剛入學的新生,一般來說,會分配一個相同科系的室友,和兩個其他科系的新生。
詩憶就是那個例外。
她錯過新生登記宿舍的時間,雖然後來候補成功,但是宿舍和同科系的新生分開,室友也是其他科系的學姐。
好處是不用擔心系上發現學姐幫她補課,但壞處很明顯,就是很難打入系上的圈子。
這點尤其在上午課程,其他人三三兩兩踏進教室的時候特別明顯。
再加上教室內的男女差距比例,她乾脆就放棄和其他學生打招呼,專心上課,畢竟要補進度的不是只有學姐那門課。
沒想到中間休息的時候,坐在後面的短髮女生突然伸手戳她和她說話。「妳需要考古題嗎?」
詩憶認出了對方是班代方綺巧,急忙回應:「喔,要的,謝謝。」
「其他人都來領了,只有妳沒有,我還以為妳有其他打算呢。」方綺巧給出考古題後沒有馬上結束對話,繼續和詩憶攀談。
「我忙忘了。」詩憶臉微紅。這是實話,光是補進度就時間不夠用了。
「妳也有選修Kotlin程式設計吧?妳對函式那章熟不熟?」方綺巧直接坐到詩憶旁邊的空位,把講義上的內容拿給她看。
fun main() {
println(add(1, 3))
}
fun add(number1: Int, number2: Int): Int {
return number1 + number2
}
「我知道傳入1
和3
的參數後結果會印出4
。」綺巧說。
詩憶點點頭,學姐和她說過,從函式括號裡傳入的都稱為參數
,參考的『參』,英文是parameter
。
fun add(number1: Int, number2: Int): String {
return "v" + number1 + number2
}
「可是我試過,這個印出的不是v4
而是v13
⋯⋯而我如果把"v"
放到中間或是最後,程式連跑都不能跑。」
fun add(number1: Int, number2: Int): String {
return number1 + number2 + "v"
}
fun add(number1: Int, number2: Int): String {
return number1 + "v" + number2
}
「嗯?」詩憶覺得這好像超出了函式的範圍?
目前她學到的內容,就是具名函式function
要用簡稱fun
開頭,後面接著函式名字,函式參數要註明類別但不能加上val
和var
,如果需要用到函式的處理結果,就要用return
回傳,否則只會印出kotlin.Unit
這個類別名字。然後回傳時要註明回傳類別,其中註明Unit
和沒註明是一樣的意義。最後,大括號裡是函式處理的內容,也是參數的生存空間。
她很確定學姐沒提到加這個"v"
的順序影響。
「抱歉,這個我也不懂。不過我可以幫妳問一個懂的人。」詩憶撥通唯心的電話。
唯心聽完了詩憶的描述,回答道:「首先,程式和數學一樣,是從上到下、左到右的順序處理。所以她寫的函式執行順序是字串"v"
先加上數字1
變成字串"v1"
,然後再加入下一個數字3
變成字串"v13"
。如果那位同學想要"v4"
的結果,可以把數字計算的地方用括號包起來。」
fun add(number1: Int, number2: Int): String {
return "v" + (number1 + number2)
}
「其次,+
其實是plus
函式的簡寫,在各種類別裡實現的方式不同。簡單點說,就是類別有實現字串.plus(數字)
和字串.plus(字串)
,但沒有實現數字.plus(字串)
。像這樣同個名字的函式擁有不同的參數,是Kotlin函式多載Function Overloading
的特性。」
詩憶復述唯心的話給綺巧,把傳過來的四則運算子對照函式圖也拿給她看。
綺巧看著圖片幾秒後,立刻拿出手機要和詩憶交換聯絡方式。「原來妳認識這麼厲害的人,以後我們就是好朋友了,其他科目的考古題我有拿到就會給妳一份,再有程式問題我就找妳幫忙啦。」
詩憶看著突然變得非常熱情、氣勢逼人的綺巧,下意識地吞了吞口水,乖乖加了通訊軟體好友。